//(C) Rusty Russell, IBM 2002